package com.geek.javase.ch18.videodemo.base64.mime;

import java.util.Base64;
import java.util.UUID;

/*
 *@Date 2025/11/6
 *@Author wangpeng
 *@Description
 * Base64是网络上最常见的用于传输8Bit字节码的编码方式之一，Base64就是一种基于64个可打印字符来表示二进制数据的方法。
 * 在Java 8中，Base64编码已经成为Java类库的标准。
 * Java 8 内置了 Base64 编码的编码器和解码器。
 * Base64工具类提供了一套静态方法获取下面三种BASE64编解码器：
 * - 基本：输出被映射到一组字符A-Za-z0-9+/，编码不添加任何行标，输出的解码仅支持A-Za-z0-9+/。
 * - URL：输出映射到一组字符A-Za-z0-9+_，输出是URL和文件。
 * - MIME：输出隐射到MIME友好格式。输出每行不超过76字符，并且使用'\r'并跟随'\n'作为分割。编码输出最后没有行分割。
 * 1.static class Base64.Encoder该类实现一个编码器，使用 Base64 编码来编码字节数据
 *          getMimeEncoder()返回一个 Base64.Encoder ，编码使用 MIME 型 base64 编码方案。
 * 2.static class Bas   e64.Decoder该类实现一个解码器用于，使用 Base64 编码来解码字节数据。
 *          getMimeDecoder()返回一个 Base64.Decoder ，解码使用 MIME 型 base64 编码方案。
 */
public class Base64Demo {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 10; i++) {
            sb.append(UUID.randomUUID().toString());
        }
        //编码
        String encodeToString = Base64.getMimeEncoder().encodeToString(sb.toString().getBytes());
        System.out.println("编码："+encodeToString);

        //解码
        byte[] bytes = Base64.getMimeDecoder().decode(encodeToString);
        System.out.println("解码："+new String(bytes));
    }
}